package main

import "fmt"

func main() {

	////1
	//var a int
	//a = 3
	////2
	//var b, c int = 1, 2
	//fmt.Println("a:", a, "b:", b, "c:", c)

	//var (
	//	e string
	//	f float32
	//	g uint8
	//	h int8
	//)

	//e = "I am string "
	//f = 1.24
	//g = 15
	//h = -50
	//
	//fmt.Println("e:", e, "f:", f, "g:", g, "h:", h)

	//错误的例子
	//var go int
	//go = 3
	//fmt.Println("default:", default)

	//类型推到
	//hA := h
	//fmt.Println("hA:", hA)
	//fmt.Println("hA type:", reflect.TypeOf(hA))

	//错误的例子
	//var intVal int
	//intVal := 1 // 这时候会产生编译错误，因为 intVal 已经声明，不需要重新声明
	//fmt.Println("intVal:", intVal)

	// 运算符
	//for i := 0; i < 100; i++ {
	//	if i%2 == 0 {
	//		if i == 0 {
	//			continue
	//		}
	//		fmt.Printf("偶数--》 %d \n", i)
	//	} else {
	//		fmt.Printf("非偶数--》 %d \n", i)
	//	}
	//}

	//位运算
	//var d int
	//d = 500
	//dok := d >> 4
	//fmt.Printf("二进制表示d--> %b \n", d)
	//fmt.Printf("十进制表示d--> %d \n", d)
	//fmt.Printf("二进制表示dok--> %b \n", dok)
	//fmt.Printf("十进制表示dok--> %d \n", dok)

	//位运算2

	//e := 4 //100
	//f := 6 //110
	//10
	//fmt.Printf("二进制表示d--> %b \n", e)
	//fmt.Printf("二进制表示d--> %b \n", f)
	//fmt.Printf("%b", e^f)

	//条件
	// if 真 { 执行}else { 不为真的代码}
	var a = 1
	//var b = 2
	//c := a + b
	//if c == 4 {
	//	fmt.Println("你的答案 错了")
	//} else {
	//	if c == 3 {
	//		fmt.Println("你的答案 对了")
	//	} else {
	//		fmt.Println("你的答案 还是错了")
	//	}
	//}

	//switch
	//switch a {
	//case 1:
	//	fmt.Println("-->1")
	//default:
	//	fmt.Printf("default %d", a)
	//}

	//for a < 100 {
	//	if a%2 == 0 {
	//		if a == 0 {
	//			continue
	//		}
	//		fmt.Printf("偶数--》 %d \n", a)
	//	} else {
	//		fmt.Printf("非偶数--》 %d \n", a)
	//	}
	//	a++
	//}

	//for {
	//	fmt.Printf("%d \n", a)
	//	time.Sleep(time.Second)
	//	if a == 3 {
	//		continue
	//	}
	//	a++
	//}
	fmt.Printf("a 变量的地址: %x\n", &a)
	var ptr *int
	ptr = &a
	fmt.Printf("%d\n", *ptr)
	*ptr = 5
	fmt.Printf("ptr ---> %d \n", *ptr)
	fmt.Printf("a --->%d \n", a)

}
